1. Field of Use
The present invention relates to a multiprocessor system with global data replication and two levels of address translation units.
2. Description of Related Art
Multiprocessor data processing systems are known where a plurality of processors, interconnected and communicating with each other through a communication bus, operate in a semi-independent or independent manner for concurrently executing a plurality of processes. Multiprocessors are used to obtain high performance. Multiprocessor systems may take several architectural forms which span from architectures defined in the literature as "tightly coupled" to "loosely coupled " ones.
Both architectures offer advantages and drawbacks. To overcome such drawbacks "tightly coupled" architectures have been proposed where certain resources, such as memory, are distributed among processors, but shared by the processors. A further improvement is achieved with the architecture described in the EP-A-88118058.2, corresponding to related U.S. patent application Ser. No. 07/196,651filed on May 19, 1988, now U.S. Pat No. 4,928,224 where the concept of global data replication is introduced. In this architecture, having shared local resources, shared local memories in particular, each local memory contains a copy of the data which are used by a plurality of processors. These data are defined as global. Each processor may have access to the global data for reading without need to access the system bus.
In this kind of architecture, the problem arises of assuring the consistency or identity of the global data in each of the local memories. Every time a global data is generated or modified in a local memory, it has to be replicated or modified in all other local memories with procedures and apparatuses of multiple or global writing which constitute a feature described in the previously mentioned European patent application, as well as Italian patent application number 22652A/88, filed Nov. 18, 1988, corresponding to related U.S. patent application Ser. No. 07/423,820, filed on Oct. 18, 1989.
The present invention has for its object the resolution of another problem which occurs with the replication of global data in each of the local memories of a multiprocessor system having shared local resources. The problem consists in the allocation of the global data in the physical space of each one of the local memories which occurs by reason of the use of the virtual memory concept in the modern data processing systems. At program level, the instruction sequences and the set of information to be used are identified by logical addresses which are completely independent of the memory capacity and the effective physical allocation of the several information items in the memory.
Process execution by the several processing units is generally, if not always, performed by using logical addresses as references.
A memory management unit, commonly identified as MMU or ATB (Address Translation Buffer) converts the logical addresses into physical addresses. In case the MMU can also signal the missing of the requested information from the memory or its invalid status.
A component of the operating system or supervisor program, named MMM (Memory Management Module), manages, according to the needs, the MMU status and establishes the relation between logical addresses and physical addresses. The unit of memory location handled in this way is usually a page of four kilobytes. In other words, the address conversion is performed on a portion of the address. The least significant portion of an address which is named "offset" coincides in both the physical and logical addresses.
In multiprocessor systems having local memories, each processor has its own MMU and manages its own local memory in an autonomous way. Depending on the processes/programs to be executed, it decides which information has to be located in its own local memory and at which physical locations. This autonomy is essential for an efficient use of the memory resources but, in the case where the local resources are shared and the global data are replicated in each one of the local memories, it causes some problem in the allocation of the global data. Each processor which generates a set of global data in its own local memory and allocates them in a physical space of local memory, according to its own requirement, must find available a corresponding physical space in the local memory of the other processors. The physical space of the other memory must be defined by the same physical addresses where the replica of the generated global data may stored.
The problem could be solved by the previous reservation in each of the local memories of a predetermined physical space having the same addresses in each of the memories for the allocation of global data. However, this approach is rigid and results in memory wasting. It requires the reservation of a memory space to global data sufficing for allocating the maximum predictable volume of global data, even if the effective need, depending on circumstances, is less.